package com.ruoyi.examation.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;


/**
 * 考试时间安排对象 exam_exam_schedule
 *
 * @author Tellsea
 * @date 2025-10-10
 */
@Data
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@TableName("exam_exam_schedule")
public class ExamSchedule extends BaseEntity {

    /**
     * 考试时间ID
     */
    private Long id;

    /**
     * 考试ID（关联exam_exam表）
     */
    @Excel(name = "考试ID", readConverterExp = "关=联exam_exam表")
    private Long examId;

    /**
     * 时间段名称
     */
    @Excel(name = "时间段名称")
    private String scheduleName;

    /**
     * 考试开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "考试开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 考试结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "考试结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 报名开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报名开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date registerStartTime;

    /**
     * 报名结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报名结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date registerEndTime;

    /**
     * 时间段状态（0未开始 1报名中 2考试中 3已结束 4已取消）
     */
    @Excel(name = "时间段状态", readConverterExp = "0=未开始,1=报名中,2=考试中,3=已结束,4=已取消")
    private String scheduleStatus;

    /**
     * 是否启用（0否 1是）
     */
    @Excel(name = "是否启用", readConverterExp = "0=否,1=是")
    private String isEnabled;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

}
